package io.kiki.sba.registry.server.metadata.metadataServer;

import io.kiki.sba.registry.common.model.metaserver.cluster.VersionedList;
import io.kiki.sba.registry.common.model.metaserver.nodes.CentralControlNode;
import io.kiki.sba.registry.observer.Observable;
import io.kiki.sba.registry.server.metadata.MetadataServer;
import io.kiki.sba.registry.server.metadata.cluster.NodeCluster;
import io.kiki.sba.registry.server.metadata.lease.dataStoreNode.DataStoreNodeManager;
import io.kiki.sba.registry.server.metadata.lease.session.ClientInterfaceNodeManager;

public interface CurrentNodeClusterMetadataServer extends MetadataServer, NodeCluster<CentralControlNode>, Observable {

    void renew(CentralControlNode centralControlNode);

    void cancel(CentralControlNode centralControlNode);

    void updateClusterMemberList(VersionedList<CentralControlNode> list);

    DataStoreNodeManager getDataStoreNodeManager();

    ClientInterfaceNodeManager getClientInterfaceNodeManager();
}
